- name: push packages out
  hosts: autocloud-backend;autocloud-backend-stg;autocloud-web;autocloud-web-stg
  user: root
  vars_files: 
   - /srv/web/infra/ansible/vars/global.yml
   - "/srv/private/ansible/vars.yml"
   - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
  vars:
    testing: False
  handlers:
  - include: "{{ handlers }}/restart_services.yml"

  tasks:
  - name: clean all metadata
    command: dnf clean all
    always_run: yes
  - name: dnf update autocloud packages from main repo
    dnf: name="autocloud*" state=latest
    when: not testing
  - name: dnf update autocloud packages from testing repo
    dnf: name="autocloud*" state=latest enablerepo=infrastructure-testing
    when: testing

- name: update tunir
  hosts: autocloud-backend;autocloud-backend-stg
  user: root
  vars_files: 
   - /srv/web/infra/ansible/vars/global.yml
   - "/srv/private/ansible/vars.yml"
   - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
  vars:
    testing: False
  handlers:
  - include: "{{ handlers }}/restart_services.yml"

  tasks:
  - name: dnf update tunir packages from main repo
    dnf: name="tunir" state=latest
    when: not testing
  - name: dnf update tunir packages from testing repo
    dnf: name="tunir" state=latest enablerepo=infrastructure-testing
    when: testing

- name: verify the frontend and stop it
  hosts: autocloud-web;autocloud-web-stg
  user: root
  vars_files: 
   - /srv/web/infra/ansible/vars/global.yml
   - "/srv/private/ansible/vars.yml"
   - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
  handlers:
  - include: "{{ handlers }}/restart_services.yml"

  pre_tasks:
  - name: tell nagios to shush w.r.t. the frontend
    nagios: action=downtime minutes=15 service=host host={{ inventory_hostname_short }}{{ env_suffix }}
    delegate_to: noc01.phx2.fedoraproject.org
    ignore_errors: true

  roles:
  - autocloud/frontend

  post_tasks:
  - service: name="httpd" state=stopped

- name: verify the backends, stop them, and then upgrade the db
  hosts: autocloud-backend;autocloud-backend-stg
  user: root
  vars_files: 
   - /srv/web/infra/ansible/vars/global.yml
   - "/srv/private/ansible/vars.yml"
   - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
  handlers:
  - include: "{{ handlers }}/restart_services.yml"

  pre_tasks:
  - name: tell nagios to shush w.r.t. the backend
    nagios: action=downtime minutes=15 service=host host={{ inventory_hostname_short }}{{ env_suffix }}
    delegate_to: noc01.phx2.fedoraproject.org
    ignore_errors: true

  roles:
  - autocloud/backend

  tasks:
  - name: Stop the fedmsg-hub backend
    service: name="fedmsg-hub" state=stopped
  - name: Stop the autocloud backend
    service: name="autocloud" state=stopped

  # There is no alembic upgrade scripts yet...
  #- name: Upgrade the database
  #  command: /usr/bin/alembic -c /usr/share/autocloud/alembic.ini upgrade head
  #  args:
  #    chdir: /usr/share/autocloud/
  #  when: inventory_hostname.startswith('autocloud-backend-libvirt')

  - name: And... start the autocloud backend again
    service: name="autocloud" state=started
  - name: And... start the fedmsg-hub backend again
    service: name="fedmsg-hub" state=started

  post_tasks:
  - name: tell nagios to unshush w.r.t. the backend
    nagios: action=unsilence service=host host={{ inventory_hostname_short }}{{ env_suffix }}
    delegate_to: noc01.phx2.fedoraproject.org
    ignore_errors: true

- name: restart the frontend
  hosts: autocloud-web;autocloud-web-stg
  user: root
  vars_files: 
   - /srv/web/infra/ansible/vars/global.yml
   - "/srv/private/ansible/vars.yml"
   - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
  handlers:
  - include: "{{ handlers }}/restart_services.yml"

  tasks:
  - service: name="httpd" state=started

  post_tasks:
  - name: tell nagios to unshush w.r.t. the frontend
    nagios: action=unsilence service=host host={{ inventory_hostname_short }}{{ env_suffix }}
    delegate_to: noc01.phx2.fedoraproject.org
    ignore_errors: true
